package com.hspedu.reflection.classload;

public class ClassLoad03 {
    public static void main(String[] args) {
        /*
            1、加载B类，生成 B.class
            2、链接 num = 0
            3、初始化阶段
                依次自动收集类中的所有静态变量的赋值动作和静态代码块中的语句，并合并
                clinit(){
                    System.out.println("B 静态代码块执行了...");
                    num = 300; //被合并
                    num = 100;
                }
                合并后：num = 100;
         */

//        new B();
        System.out.println(B.num);
    }
}

class B {
    static {
        System.out.println("B 静态代码块执行了...");
        num = 300;
    }

    static int num = 100;

    public B() {
        System.out.println("B 构造器执行了...");
    }
}